import { fileURLToPath, URL } from 'node:url'

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import qiankun from 'vite-plugin-qiankun';

const base = '/user-app';

// https://vitejs.dev/config/
/** @type {import('vite').UserConfig} */
export default defineConfig({
  plugins: [
    vue(),
    qiankun('user-app',{
      useDevMode: true,
    })
  ],
  base,
  server: {
    cors: true,
    proxy: {
      // 这个代理用于将  /user-app 以外的请求，指向基座工程，这样就可以在通过访问本工程的地址访问 基座工程
      // 基座工程中注册本应用的 entry 只写本应用的  base 就可以了
      // 这样做可以在开发时尽可能的靠近生产环境（基座工程与子工程放在同一 http 服务器下）
      // 注意：**** 这里有一个Bug ，在子程序的路由下刷新浏览器，基座工程加载不了，所以只能先进入根路由之后进入子程序路由
      "^(?!/user-app)":{
        target: "http://localhost:5173/",
        changeOrigin: true
      },  
    }
  },
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url))
    }
  },
})
